package com.fer.tankr.scenes;

import com.fer.andenginemvc.api.Controller;
import com.fer.andenginemvc.api.SceneManager;
import com.fer.tankr.MainActivity;
import com.fer.tankr.controllers.CreditsController;
import com.fer.tankr.controllers.GameController;
import com.fer.tankr.controllers.HelpController;
import com.fer.tankr.controllers.HighScoreControllers;
import com.fer.tankr.controllers.LevelsController;
import com.fer.tankr.controllers.MenuController;
import com.fer.tankr.controllers.SplashController;

public class SceneManagerImpl extends SceneManager<MainActivity>{

	/**
	 * 
	 */
	private static final long serialVersionUID = 3622642847597715405L;

	public final static String GAME = "game";
	public final static String MENU = "menu";
	public final static String SPLASH = "splash";
	public final static String HIGH_SCORE = "highScore";
	public final static String HELP = "help";
	public final static String LEVELS = "levels";
	public final static String CREDITS = "credits";
	
	private Controller<MainActivity> gameController;
	private Controller<MainActivity> menuController;
	private Controller<MainActivity> splashController;
	private Controller<MainActivity> highScoreController;
	private Controller<MainActivity> helpController;
	private Controller<MainActivity> levelsController;
	private Controller<MainActivity> creditsController;
	
	
	public SceneManagerImpl(MainActivity baseActivity) {
		super(baseActivity);
	}

	@Override
	public void registerAllControllers() {
		gameController = new GameController(baseActivity, baseActivity.camera);
		put(GAME, gameController);
		
		menuController = new MenuController(baseActivity, baseActivity.camera);
		put(MENU, menuController);
		
		splashController = new SplashController(baseActivity, baseActivity.camera);
		put(SPLASH, splashController);
		
		highScoreController = new HighScoreControllers(baseActivity, baseActivity.camera);
		put(HIGH_SCORE, highScoreController);
		
		helpController = new HelpController(baseActivity, baseActivity.camera);
		put(HELP, helpController);
		
		levelsController = new LevelsController(baseActivity, baseActivity.camera);
		put(LEVELS, levelsController);
		
		creditsController = new CreditsController(baseActivity, baseActivity.camera);
		put(CREDITS, creditsController);
	}
	


}
